<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8" />
	<title>SM3加解密测试</title>
	<script src="js/utils/hex.js"></script>
	<script src="js/utils/byteUtil.js"></script>
	<script src="js/crypto/sm3-1.0.js"></script>
	<script src="js/utils/jquery-3.3.1.min.js"></script>
</head>

<body>
	<div style="text-align:center;">
		<form action="#" method="post">

			<table style="margin-left: auto;margin-right: auto;">
				<!--border=0 cellpadding=0 cellspacing=0-->
				<tr>
					<td style="width:auto;text-align: right;">
						输入数据：
					</td>
					<td style="text-align: left;" valign="middle">
						<textarea rows="5" cols="50" name="inputtext" id="inputtext"></textarea>
					</td>
				</tr>
				<tr>
					<td style="width:auto;text-align: right;">
						结果：
					</td>
					<td style="text-align: left;" valign="middle">
						<textarea rows="5" cols="50" name="crypttext" id="crypttext"></textarea>
					</td>
				</tr>

				<tr>
					<td colspan="2" style="width:auto;text-align: center;">
						<input type="button" value="sm3加密" id="btn_enc" />
					</td>
				</tr>
			</table>

		</form>
	</div>

	<script>

		/*
		 * 测试sm3加密
		 */
		$("#btn_enc").click(function () {
			var inputtext = $("#inputtext").val();
			//这一步是先将输入数据转成utf-8编码的字节流，然后再转成16进制可见字符
			var dataBy = Hex.utf8StrToBytes(inputtext);

			var sm3 = new SM3Digest();
			sm3.update(dataBy, 0, dataBy.length);//数据很多的话，可以分多次update
			var sm3Hash = sm3.doFinal();//得到的数据是个byte数组
			var sm3HashHex = Hex.encode(sm3Hash, 0, sm3Hash.length);//编码成16进制可见字符
			$("#crypttext").val(sm3HashHex);
			// sm3.testf("from html");
		});

		/*
		$("#btn_test").click(function(){
			var inputtext = $("#inputtext").val();
			//这一步是先将输入数据转成utf-8编码的字节流，然后再转成16进制可见字符
			var dataHex = CryptoJS.enc.Utf8.parse(inputtext).toString();
			utf8StrToHex(inputtext);
			
			var dataBy = Hex.decode(dataHex);//转成byte数据
			
			
			var sm3 = new SM3Digest();
			sm3.update(dataBy,0,dataBy.length);//数据很多的话，可以分多次update
			var sm3Hash = sm3.doFinal();//得到的数据是个byte数组
			var sm3HashHex = Hex.encode(sm3Hash,0,sm3Hash.length);//编码成16进制可见字符
			$("#crypttext").val(sm3HashHex);
		});
		*/
	</script>
</body>

</html>